<?php

/**
 * A simple element (image, text or rectangle) able to render itself.
 *
 * ---
 *
 * Простейший элемент (изображение,  текст или прямоугольник), который
 * может себя нарисовать.
 */
interface IDisplayListElement {
  /**
   * Renders element contents on canvas
   * 
   * @param ICanvas $canvas output-independent drawing surface
   *
   * --- 
   * 
   * Отрисовывает элемент в области вывода.
   *
   * ICanvas $canvas область вывода,  не зависящая от конкретного типа
   * генерируемого файла.
   */
  function render(ICanvas $canvas);

  /**
   * Returns y-coordinate of the bounding box top edge in device pixels
   *
   * @return integer top coordinate, pixels
   * 
   * ---
   *
   * Возвращает координату Y  в пикселях верхнего края прямоугольника,
   * охвативающего этот элемент.
   */
  function getBBoxTop();

  /**
   * Returns x-coordinate of the bounding box left edge in device pixels
   *
   * @return integer left coordinate, pixels
   * 
   * ---
   * 
   * Возвращает  координату X в  пикселях левого  края прямоугольника,
   * охвативающего этот элемент.
   */
  function getBBoxLeft();

  /**
   * Returns bounding box width in device pixels
   *
   * @return integer width, pixels
   *
   * ---
   *
   * Возвращает ширину  в пикселях прямоугольника,  охватывающего этот
   * элемент.
   */
  function getBBoxWidth();

  /**
   * Returns bounding box height in device pixels
   *
   * @return integer height, pixels
   *
   * ---
   *
   * Возвращает высоту  в пикселях прямоугольника,  охватывающего этот
   * элемент.
   */
  function getBBoxHeight();
}

?>